1. Field of the Invention
The present invention relates generally to master and slave devices communicating on a shared bus, and more particularly to device addressing schemes to provide security to the system.
2. Description of the Related Art
Many computer systems communicate with peripheral devices or other computers using a shared bus to communicate data there between. Such a system is efficient in that a single bus is connected to each device. However, a set of rules or protocol is required in order to provide an orderly data flow so that more than one device does not attempt to use the shared bus at the same time. Often, a master or host device is the dominant computer and controls the communications with the other devices, known as slave devices. With this type of data communication system, the master device determines when to communicate with a slave device, and in response thereto, the slave device responds. The slave devices do not, on their own, initiate communications with the master device.
A well known protocol for providing orderly data communications between a master device and one or more slave devices is the Inter-Integrated Circuit (I2C) technique. The master device is not identified by an address, but all of the slave devices are uniquely identified with respective addresses. The address of each of the slave devices is stored by hardwired means, or in a non-volatile memory that is resident in the slave devices. A two-wire bus connects all of the devices together. When the master device initiates communications with a specific slave device, the address of the slave device is transmitted with a command on the bus during the initiation of the communication. While all of the slave devices will receive the command and the slave address on the bus, only one slave device will find a match with the address, and thus an acknowledgment is sent from the slave device to the master device, whereupon a two-way communication path is established.
The I2C protocol, as well as other similar bus communication protocols, function to provide data communications on a shared bus between numerous devices. However, the security of such type of communication system can be compromised rather easily. All that is required is that an imposter computer or device be connected to the communication bus and use an active address that is available in the system. In this manner, when the master computer transmits that address on the bus, the imposter can communicate with the master without the master being aware of the same. The data information of the system can thus be made available to the imposter for unauthorized use. Moreover, the imposter device can reply to a request for data and supply false data to the master device which is then processed by the system. Viruses and other data corrupting schemes can be transferred from the imposter device to the master device and thereby corrupt the entire data processing system.
The slave devices need not be sophisticated equipment, but can be simple add-on devices to a host device. By requiring the add-on device to have an address and be coupled to the bus, the existence of a bona fide add-on device can be assured by addressing the same and receiving a response. If the original add-on device is replaced with an imposter device that did not replicate the address of the replaced device, then when addressed, the imposter device cannot respond and the master device is aware of either the removal or inoperability of the original device. More specifically, this technique can be employed with original equipment of a system that is consumable and thus replaceable. If not replaced with the device manufactured by the OEM, then this can be become known and the master device can prevent operation of the system.
From the foregoing, it can thus be seen that a need exists for a technique to afford more security in a shared bus system where the slave devices are uniquely identified. Another need exists for a technique to periodically change the slave device addresses to increase the difficulty for an imposter to communicate with the master device. Yet another need exists for a technique to request that a slave device change its address, but prevent the slave device from communication the new address to the master device, thereby reducing the chances of an imposter learning the new address.